1
ช่วงชีวิตของวัตถุในระดับท้องถิ่น: ออโตเมติกเทียบกับสแตติก
AI037Lesson 10
00:00

ในเวทีของภาษาซีพลัส ทุกวัตถุจะมีอายุการใช้งาน— ช่วงชีวิตของวัตถุ. ซึ่งกำหนดระยะเวลาที่วัตถุใช้พื้นที่ในหน่วยความจำ ภายใน ร่างฟังก์ชัน, การกระทำเริ่มต้นสำหรับ ตัวแปรท้องถิ่น คือการเป็น ออโตเมติก, แต่เราสามารถสั่งให้มันเป็น สแตติก เพื่อเปลี่ยนชะตากรรมของมัน

1. วัตถุออโตเมติก

โดยปริยาย ตัวแปรท้องถิ่นจะเป็น วัตถุออโตเมติก. พวกเขาเกิดขึ้น (เริ่มต้นใช้งาน) เมื่อ ฟังก์ชัน การทำงานถึงจุดที่นิยาม และตาย (ถูกคืนพื้นที่) เมื่อบล็อกเสร็จสิ้น พวกเขาอยู่บนสแต็ก ทำให้แต่ละครั้งที่เรียกใช้จะมีค่าใหม่เสมอ

2. วัตถุสแตติกในระดับท้องถิ่น

เมื่อคุณใช้คำสั่ง สแตติก คุณจะสร้างวัตถุ วัตถุสแตติกในระดับท้องถิ่น. พวกมันจะถูกตั้งค่าครั้งเดียวเท่านั้น — ก่อนที่การควบคุมจะผ่านจุดนิยามครั้งแรก — และคงอยู่จนโปรแกรมสิ้นสุด ซึ่งช่วยให้ฟังก์ชันสามารถ "จดจำ" สถานะได้ โดยไม่ปนเปื้อนบริบทระดับโลก

สแต็ก (ออโตเมติก)[ ค่าชั่วคราว ]ถูกลบเมื่อบล็อกจบส่วนข้อมูล (สแตติก)[ ค่าคงที่ ]อยู่จนโปรแกรมสิ้นสุด

3. กลยุทธ์การวนซ้ำ

ใน ฟังก์ชันวนซ้ำ, ทุก รอบการวนซ้ำ สร้างตัวอย่างเฉพาะเจาะจงของวัตถุออโตเมติก ถ้าการวนซ้ำลึกมาก มันจะใช้พื้นที่สแต็กจำนวนมาก ในทางกลับกัน วัตถุ สแตติก จะถูกแชร์ระหว่างทุกระดับของการวนซ้ำนี้

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>